#pragma once

class Game
{
public:
	Game(void);
	~Game(void);

	void initialize(int width, int height, const char* title);
	void start();
	void stop();

	void setOnDrawEvent(const luabind::object &fn);
	void onDrawEvent();

	bool isKeyDown(char key);
	bool isKeyDown(const std::string& key);

	POINT getMousePosition();
	bool isMouseDown(int btn);

	void showConsole();

	LRESULT doMessage(HWND window, UINT message, WPARAM wParam, LPARAM lParam);
	
	void toLua();

private:
	MainWindow mWnd;
	luabind::object mOnDrawFunction;
	float mElapsedTime;
};